package vue.util;

import java.awt.Graphics2D;
import java.awt.image.BufferedImage;

/**
 * Utilitaires d'images
 * 
 * @author Martin
 *
 */
public class ImageUtil {

	/**
	 * Fournie une copie de l'image originale qui respecte les dimensions
	 * demandées.
	 * 
	 * @param originalImage
	 *            l'image à colorer
	 * @param width
	 *            la largeur de l'image
	 * @param height
	 *            la hauteur de l'image
	 * @return une copie redimensionnée de l'image originale.
	 */
	public static BufferedImage resizeImage(BufferedImage originalImage,
			int width, int height) {
		int type = originalImage.getType() == 0 ? BufferedImage.TYPE_INT_ARGB
				: originalImage.getType();

		BufferedImage resizedImage = new BufferedImage(width, height, type);
		Graphics2D g = resizedImage.createGraphics();
		g.drawImage(originalImage, 0, 0, width, height, null);
		g.dispose();

		return resizedImage;
	}

	/**
	 * Change la couleur principale de l'image. Attention, l'image originale est
	 * modifiée.
	 * 
	 * @param originalImage
	 *            l'image à colorer
	 * @param width
	 *            la largeur de l'image
	 * @param height
	 *            la hauteur de l'image
	 * @param color
	 *            la couleur à donner à l'image
	 */
	public static void changeColor(BufferedImage originalImage, int width,
			int height, int color) {

		for (int x = 0; x < originalImage.getWidth(); x++) {
			for (int y = 0; y < originalImage.getHeight(); y++) {
				int pixel = originalImage.getRGB(x, y);

				pixel = pixel | color;

				originalImage.setRGB(x, y, pixel);
			}
		}
	}
}
